<?php
class MgDescuentosController extends AppController {
	var $name = 'MgDescuentos';
	var $helpers = array('Ajax','Javascript','Html','Form');
	var $uses = array ('MgDescuento','MgTipoDescuento','TcContrato');
	var $components = array('RequestHandler');

	function index()
	{
		$this->pageTitle = 'Contrato';
	}
	function insertar( $contrato=null)
	{
		$this->pageTitle='Descuento por Contrato';
		$descontrato=$this->TcContrato->find('first',
		array('fields'=>array('TcContrato.descripcion'),
						  						'conditions'=>array('TcContrato.id'=>$contrato)));		
		$this->set('contratoid',$descontrato['TcContrato']['descripcion']);
		$listadoTipoDescuento=$this->MgTipoDescuento->find('all',array('field'=>array('MgTipoDescuento.id','MgTipoDescuento.descripcion',
																	   'order'=>'MgTipoDescuento.descripcion ASC')));
		$this->set('tipodescuento', Set::combine($listadoTipoDescuento,"{n}.MgTipoDescuento.id","{n}.MgTipoDescuento.descripcion"));
		if (!empty($this->data['MgDescuento']['tc_contrato_des']))
		{
			$idcontrato=$this->TcContrato->find('first',
			array('conditions'=>array('TcContrato.descripcion'=>$this->data['MgDescuento']['tc_contrato_des'],'TcContrato.tc_estado_contrato_id <>'=>'3')));
			$this->data['MgDescuento']['tc_contrato_id']= $idcontrato['TcContrato']['id'];
		}
		$existedesc=$this->MgDescuento->find('first',array('order'=>'MgDescuento.id ASC',
													'conditions'=>array('MgDescuento.tc_contrato_id'=>$this->data['MgDescuento']['tc_contrato_id'],
																	'MgDescuento.mg_tipo_descuento_id'=>$this->data['MgDescuento']['mg_tipo_descuento_id'] )));
		if (empty($existedesc)){
			if(!empty($this->data)){
				$this->MgDescuento->create();
				if($this->MgDescuento->save($this->data)){
					$this->Session->setFlash('Datos Guardados Exitosamente');
					$this->redirect(array('action'=>'index'));
				}
				else {
					$this->Session->setFlash('Error NO se creo el cliente');
				}

			}
		}
		else {
			$this->Session->setFlash('Descuento ya existe para el contrato');
		}
	}

	function insertarExt()
	{
		Configure::write('debug','0');
		$this->layout = 'ajax';
		$response = array();
		$existedesc=$this->MgDescuento->find('first',
		array('order'=>'MgDescuento.id ASC',
			  'conditions'=>array('MgDescuento.tc_contrato_id'=>$this->data['MgDescuento']['tc_contrato_id'],
			  					  'MgDescuento.mg_tipo_descuento_id'=>$this->data['MgDescuento']['mg_tipo_descuento_id'])));
		if (empty($existedesc)){
			if(!empty($this->data)){
				$this->MgDescuento->create();
				$this->data['MgDescuento']['adicionado_por'] =$this->Session->read('Auth.MgUsuario.usuario');
				if($this->MgDescuento->save($this->data)){
					$response = array(
					'success'=> true,
					'errors'=>$this->validateErrors($this->MgDescuento));
				}
				else {
					$Erros = array();
					foreach ($this->validateErrors($this->MgDescuento) as $key => $value)
					{
						$Erros['data[MgDescuento]['.$key.']'] = $value;
					}

					$response = array(
   		     		'success' => false,
		     		'errors' =>$Erros
					);
				}

			}
		}
		else {
			$Erros = array();
			$Erros['data[MgDescuento][mg_tipo_descuento_id]'] = 'Ya existe el tipo de descuento para el contrato';
			$response = array(
				'success'=> false,
				'errors'=>$Erros);
		}
		$this->set('response',$response);
	}


	function mostrar($id=null)
	{
		if(!empty($id)){
			$datos=$this->MgDescuento->find('all',array('conditions'=>array('MgDescuento.tc_contrato_id' =>$id ),'fields'=>array('MgDescuento.id','MgDescuento.mg_tipo_descuento_id')));
			$this->set('mgDescuentos', $this->paginate(array('MgDescuento.tc_contrato_id'=>$id)));
			$this->set('contratoid',$id);
		}
		else {
			$this->MgDescuento->recursive = 0;
			$this->set('mgDescuentos', $this->paginate());
		}

		/*$this->pageTitle = 'Listar Contratos';
		 $this->set('contratos',$this->TcContrato->find('all'));*/
	}

	function buscaDescuento()
	{
		Configure::write('debug', '0');  //set debug to 0 for this function because debugging info breaks the XMLHttpRequest
		$this->layout = "ajax"; //this tells the controller to use the Ajax layout instead of the default layout (since we're using ajax . . .)
		$fields_array = array();
		$limit = 5;
		$page = 1;
		$accionA = array();
		if(!empty($_POST['limit']))
		$limit = $_POST['limit'];
		if(!empty($_POST['start']))
		$page = ($_POST['start']/$limit)+1;
		if(!empty($_POST['contratoid']))
		$contratoid = $_POST['contratoid'];

		$fields_array= array('MgDescuento.id','MgDescuento.tc_contrato_id',
							 'MgDescuento.created','MgDescuento.adicionado_por',
							 'MgTipoDescuento.descripcion','MgDescuento.modificado_por',
							 'MgDescuento.modified','MgDescuento.mg_tipo_descuento_id','TcContrato.contrato'
							 ,'TcContrato.descripcion'
							 );
							 if(!empty($contratoid)){
							 	$count = $this->MgDescuento->find('count',
							 	array('conditions'=>array('MgDescuento.tc_contrato_id' =>$contratoid)));
							 	$accionA=$this->MgDescuento->find('all',
							 	array('conditions'=>array('MgDescuento.tc_contrato_id' =>$contratoid),
										   		 'fields'=>$fields_array,
										   		 'limit' => $limit,
										   		 'page'=> $page,
										   		 'order'=>'MgDescuento.created DESC','MgDescuento.tc_estado_accione_id'));		           		
							 }
							 $Arrays1 = array();
							 $Arrays = array();
							 foreach ($accionA as $k => $v)
							 {
							 	foreach ($v as $k1 => $v1)
							 	{
							 		foreach ($v1 as $k2 => $v2)
							 		{
							 			$Arrays1[$k1.'-'.$k2] = $v2;
							 		}
							 	}
							 	$Arrays1['action1']='icon-cancel';
							 	$Arrays1['qtip1']='Eliminar Descuento';

							 	$Arrays[] = $Arrays1;
							 }
							 $descuentoArray = $Arrays;
							 if (empty($count))
							 {
							 	$count = 0;
							 }
							 $this->set('total', $count);
							 $this->set('descuentos',$descuentoArray);
	}

	function ajax_validate() {
		Configure::write('debug', 0);
		if($this->RequestHandler->isAjax()) {
			$this->data['MgDescuento'][$this->params['form']['field']] = $this->params['form']['value'];
			$this->MgDescuento->set($this->data);
			if($this->MgDescuento->validates()) {
				$this->autoRender = false;
			}
			else {
				$errorArray = $this->validateErrors($this->MgDescuento);

				$this->set('error', $errorArray[$this->params['form']['field']]);
			}
		}
	}

	function autoComplete() {
		Configure::write('debug',0);
		$this->layout = 'ajax';
		$id_contrato= $this->data[$this->MgDescuento]['tc_contrato_id'];
		$contratos = $this->TcContrato->find('all', array(
   		'conditions'=>array('TcContrato.contrato LIKE'=>$this->params['url']['q'].'%','TcContrato.tc_estado_contrato_id <>'=>'3'),
   		'fields'=>array('contrato', 'descripcion' )));
		$this->set('contratos', $contratos);
	}
	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalido id para Descuento', true));
			$this->redirect(array('action'=>'mostrar'));
		}
		if ($this->MgDescuento->delete($id)) {
			$this->Session->setFlash(__('Descuento borrado', true));
			$this->redirect(array('action'=>'mostrar'));
		}
	}

	function deleteExt($id = null) {
		Configure::write('debug','0');
		$this->layout = "ajax";
		$response = array();
		if (!$id) {
			$response = array(
   		     		'success' => false
			);
		}
		else {
			if ($this->MgDescuento->delete($id)) {
				$response = array(
					'success'=> true,
					'errors'=>$this->validateErrors($this->MgDescuento));
			}
			else {
				$Erros = array();
				foreach ($this->validateErrors($this->MgDescuento) as $key => $value)
				{
					$Erros['data[MgDescuento]['.$key.']'] = $value;
				}
				$response = array(
   		     		'success' => false,
		     		'errors' =>$Erros
				);
			}
		}
		$this->set('response',$response);
	}

	function combobox($tipo=null,$modelo=null, $campo=null)
	{
		Configure::write('debug', '0');
		$this->layout = "ajax";
		if(!empty($_POST['query']))
		$query = $_POST['query'];
		if ($tipo==1)
		{
			if (!empty($query) && $query<>'')
			{
				$count = $this->$modelo->find('count',
				array('conditions'=>array($modelo.'.'.$campo.' LIKE'=>strtoupper($query).'%')));
				$datos = $this->$modelo->find('all',
				array('fields'=>array('id', $campo),
        										'conditions'=>array($modelo.'.'.$campo.' LIKE'=>strtoupper($query).'%')));												 
			}
			else
			{
				$count = $this->$modelo->find('count');
				$datos = $this->$modelo->find('all',
				array('fields'=>array('id', $campo)));
			}
		}
		else
		{
			if (!empty($query) && $query<>'')
			{
				$count = $this->$modelo->find('count',
				array('conditions'=>array($modelo.'.id LIKE'=>strtoupper($query).'%')));
				$datos = $this->$modelo->find('all',
				array('fields'=>array('id', 'primer_nombre','segundo_nombre','primer_apellido','segundo_apellido'),
        											  'conditions'=>array($modelo.'.id LIKE'=>strtoupper($query).'%'),
        											  'limit'=>'10'));												 
			}
			else
			{
				$count = $this->$modelo->find('count');
				$datos = $this->$modelo->find('all',
				array('fields'=>array('id', 'primer_nombre','segundo_nombre','primer_apellido','segundo_apellido'),
        										'limit'=>'10'));											 
			}
		}
		$datosA = Set::extract($datos, '{n}.'.$modelo);
		$this->set('total', $count);
		$this->set('datos',$datosA);
	}
}
?>